package org.jeecg.modules.manage.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @Description: 任务结算
 * @Author: yfkj
 * @Date:   2023-02-20
 * @Version: V1.0
 */
@ApiModel(value="caishui_task_settle对象", description="任务结算")
@Data
@TableName("caishui_task_settle")
public class CaishuiTaskSettle implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;

	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;

	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;

	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;

	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;

	/**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;

    /**税源地ID*/
    @Excel(name = "服务公司", width = 25, dictTable = "caishui_service_company", dicText = "name", dicCode = "id")
    @Dict(dictTable = "caishui_service_company", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "税源地ID")
    private String companyId;

    /**商户ID*/
    @Excel(name = "签约商户", width = 25, dictTable = "caishui_business", dicText = "name", dicCode = "id")
    @Dict(dictTable = "caishui_business", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "商户ID")
    private String businessId;

    /**租户ID*/
    @ApiModelProperty(value = "租户ID")
    private Long tenantId;

    /**用户ID*/
    @ApiModelProperty(value = "用户ID")
    private String userId;

    /**渠道商户ID*/
    @ApiModelProperty(value = "渠道商户ID")
    private String channelBusinessId;

    /**订单编号*/
    @Excel(name = "订单编号", width = 15)
    @ApiModelProperty(value = "订单编号")
    private String orderNo;

	/**任务名*/
	@Excel(name = "任务名", width = 15)
    @ApiModelProperty(value = "任务名")
    private String name;

	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;

	/**结算单*/
	@Excel(name = "结算单", width = 15)
    @ApiModelProperty(value = "结算单")
    private String settleDoc;

	/**付方户名*/
    @ApiModelProperty(value = "付方户名")
    private String payName;

	/**付方账号*/
    @ApiModelProperty(value = "付方账号")
    private String payAccount;

	/**记账子单元*/
    @ApiModelProperty(value = "记账子单元")
    private String paySubUnit;

	/**总金额*/
	@Excel(name = "总金额", width = 15)
    @ApiModelProperty(value = "总金额")
    private java.math.BigDecimal totalAmount;

	/**总笔数（人数）*/
	@Excel(name = "总笔数（人数）", width = 15)
    @ApiModelProperty(value = "总笔数（人数）")
    private Integer totalNum;

	/**成功金额*/
	@Excel(name = "成功金额", width = 15)
    @ApiModelProperty(value = "成功金额")
    private java.math.BigDecimal successAmount;

	/**成功笔数*/
	@Excel(name = "成功笔数", width = 15)
    @ApiModelProperty(value = "成功笔数")
    private Integer successNum;

	/**失败金额*/
	@Excel(name = "失败金额", width = 15)
    @ApiModelProperty(value = "失败金额")
    private java.math.BigDecimal failAmount;

	/**失败笔数*/
	@Excel(name = "失败笔数", width = 15)
    @ApiModelProperty(value = "失败笔数")
    private Integer failNum;

    /**服务费*/
    @Excel(name = "服务费", width = 15)
    @ApiModelProperty(value = "服务费")
    private Double serviceFee;

    /**成功服务费*/
    @Excel(name = "成功服务费", width = 15)
    @ApiModelProperty(value = "成功服务费")
    private Double successServiceFee;

    /**一档税率*/
    @Excel(name = "一档税率", width = 15)
    @ApiModelProperty(value = "一档税率")
    private Double taxRate;

    /**二档税率*/
    @Excel(name = "二档税率", width = 15)
    @ApiModelProperty(value = "二档税率")
    private Double taxRateTwo;

	/**状态：0-待提交，1-待审核，2-已通过，3-已驳回，4-已作废*/
	@Excel(name = "状态", width = 15, dicCode = "caishui_task_settle_status")
    @ApiModelProperty(value = "状态")
    @Dict(dicCode = "caishui_task_settle_status")
    private Integer status;

	/**发送状态：0-待发放，1-已发放，2-已取消*/
	@Excel(name = "发送状态", width = 15 ,dicCode = "caishui_extend_status")
    @ApiModelProperty(value = "发送状态")
    @Dict(dicCode = "caishui_extend_status")
    private Integer extendStatus;

    /**提交时间*/
    @Excel(name = "提交时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "提交时间")
    private Date submitTime;

	/**发放时间*/
	@Excel(name = "发放时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "发放时间")
    private Date extendTime;

	/**审核时间*/
	@Excel(name = "审核时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "审核时间")
    private Date checkTime;

    /**提交状态：1-直接发放，2-审核发放，3-禁止发放*/
    private Integer submitStatus;

    /**银行流程实例号*/
    private String bankReqnbr;

    /**银行请求状态：OPR-数据接收中，AUT-等待审批，NTE-终审完毕，APW-银行人工审批，WRF-可疑，BNK-银行处理中，FIN-完成*/
    private String bankReqsta;

    /**银行业务请求结果：S-成功，F-失败，C-撤销，D-过期 企业过期不审批，R-否决 企业审批否决*/
    private String bankRtnflg;

    /**银行记录状态：T-未处理，A-银行处理中，E-完成，C-撤销、否决 、过期*/
    private String bankStscod;

    /**银行错误码*/
    private String bankErrcod;

    /**银行错误描述*/
    private String bankErrdsp;

}
